package cn.xiaolang.function.slf4jVSlog4j;

import org.apache.log4j.Logger;

/**
用到：log4j-1.2.16.jar包

log4j简单配置log4j.properties:

优先级别：debug < info < warn < error
#debug: 显示debug, info, warn, error
#info: 显示info, warn, error
#warn: 显示warn, error
#error: 只显示error

#1.日志的输出级别由rootLogger和普通Logger设置的最高级别决定。记录器
#log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=warn,appender1
#log4j.rootLogger=error,appender1

#2.Appender输出源
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j提供的Appender:
org.apache.log4j.ConsoleAppender（控制台），
org.apache.log4j.FileAppender（文件），
org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件），
org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件），
org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方）


#3.样式
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j提供的Layout:
org.apache.log4j.HTMLLayout（以HTML表格形式布局），
org.apache.log4j.PatternLayout（可以灵活地指定布局模式），
org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串），
org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息）

#4.实例：
log4j.rootLogger=DEBUG,A1
log4j.logger.org.mybatis = DEBUG

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n



Log4J采用类似C语言中的printf函数的打印格式格式化日志信息，打印参数如下：
　　%m 输出代码中指定的消息
　　%p 输出优先级，即DEBUG，INFO，WARN，ERROR，FATAL
　　%r 输出自应用启动到输出该log信息耗费的毫秒数
　　%c 输出所属的类目，通常就是所在类的全名
　　%t 输出产生该日志事件的线程名
　　%n 输出一个回车换行符，Windows平台为“rn”，Unix平台为“n”
　　%d 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d{yyy MMM dd HH:mm:ss,SSS}，输出类似：2002年10月18日 22：10：28，921
　　%l 输出日志事件的发生位置，包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10)
 */

public class Log4jDemo {

	private static final Logger LOGGER =Logger.getLogger(Log4jDemo.class);
	
	public static void main(String[] args) {
		System.out.println("测试apache的log4j的用法：");
		LOGGER.debug("This is a debug message!!");
		LOGGER.info("This is a info message!!");
		LOGGER.warn("This is a warn message!!");
		LOGGER.error("This is a error message!!");
	}
}
